package paidaxing.blog.post.dto;

import lombok.Data;
import paidaxing.blog.post.dto.AuthorDTO;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 文章DTO
 */
@Data
public class PostDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 文章ID
     */
    private Long id;

    /**
     * 文章标题
     */
    private String title;

    /**
     * 文章内容
     */
    private String content;

    /**
     * 文章摘要
     */
    private String excerpt;

    /**
     * 封面图片
     */
    private String coverImage;

    /**
     * 状态: DRAFT,PUBLISHED,PRIVATE,TRASH
     */
    private String status;

    /**
     * 阅读数
     */
    private Integer viewCount;

    /**
     * 点赞数
     */
    private Integer likeCount;

    /**
     * 评论数
     */
    private Integer commentCount;

    /**
     * 是否置顶 0:否 1:是
     */
    private Integer isTop;

    /**
     * 是否推荐 0:否 1:是
     */
    private Integer isRecommend;

    /**
     * 访问密码
     */
    private String password;

    /**
     * 作者ID
     */
    private Long userId;

    /**
     * 作者信息
     */
    private AuthorDTO author;

    /**
     * 分类ID
     */
    private Long categoryId;

    /**
     * 发布时间
     */
    private Date publishedAt;

    /**
     * 创建时间
     */
    private Date createdAt;

    /**
     * 更新时间
     */
    private Date updatedAt;

    /**
     * 逻辑删除 0:正常 1:删除
     */
    private Integer deleted;

    /**
     * 标签列表
     */
    private List<TagDTO> tags;

    /**
     * 标签ID列表，用于创建和更新时传递
     */
    private List<Long> tagIds;
}